// <    +    |    []
// >    /    ^    []=
// <=  ~/    &    ~
// >=   *   <<    ==
// -    %   >>
main() {
  var test_01 = Test(1, 2);
  var test_02 = Test(1, 2);
  print("x:${(test_01 * test_02).x} y:${(test_01 * test_02).y} ");
}

class Test {
  final int x;
  final int y;

  const Test(this.x, this.y);

  //运算符重载
  Test operator *(Test test) {
    return Test(this.x * test.x, this.y * test.y);
  }
}
